Telecommunications (telecom) systems are carrying increasing amounts of information, both in long distance networks as well as in metropolitan and local area networks (MAN/LAN). At present, data traffic is growing much faster than voice traffic, and includes high bandwidth video signals. In addition to the requirement for equipment to carry increasing amounts of telecom traffic there is a need to bring this information from the long distance networks to businesses and to locations where it can be distributed to residences over access networks.
The equipment, which has been developed to carry large amounts of telecom traffic, includes fiber optic transport equipment that can carry high-speed telecom traffic. The data rates on fiber optic systems can range from millions of bits per second (Mb/s) to billions of bits per second (Gb/s). In addition, multiple wavelengths of light can be carried on an optical fiber using Wavelength Division Multiplexing (WDM) techniques.
The use of optical fibers allows large amounts of telecom traffic to be transported over long distances. However, as one of ordinary skill in the art would recognize, it is impossible to have direct connections from each device sending data to each device receiving data. Moreover, some of the data being transmitted from a particular device may be intended for an intermediate point while other data is destined for a final point. Furthermore, the intermediate point may also wish to transmit data to the final point. The optical fibers provide a high-speed data stream (pipeline) upon which to transmit data traffic from a plurality of devices to a plurality of other devices.
Thus, telecom networks utilize network elements (NEs) that act as nodes in the transportation of data. The nodes may be nothing more than an intermediate point for data, may be a destination point for data, or may be a point where data is added to and removed from the data stream. NEs capable of providing this functionality, adding and removing traffic, are referred to as “add-drop” multiplexers (ADMs).
ADMs include multiple interface cards which receive high-speed data streams, create a time division multiplex (TDM) signal containing the multiple data streams, and route the time division multiplex signal to a cross-connect unit which can disassemble the data streams, remove or insert particular data streams, and send the signal to another interface card for transmission back into the networks. Because the multiple data streams are aggregated into a TDM data signal, the data rate of the TDM signal is by definition several times the maximum data rate supported by the interface cards.
Standardized interfaces and transmission hierarchies for telecom signals have been developed and include Pleisochronous Digital Hierarchy (PDH), Synchronous Digital Hierarchy (SDH), and Synchronous Optical Network (SONET). In addition to these telecom transport standards, standards have been developed for interconnecting businesses and computers within businesses. These Metropolitan and Local Area Network (MAN/LAN) standards include Ethernet, Gigabit Ethernet, Frame Relay, and Fiber Distributed Data Interface (FDDI). Other standards, such as Integrated Services Digital Network (ISDN) and Asynchronous Transfer Mode (ATM) have been developed for use at both levels.
FIG. 1 illustrates a simple telecommunications network 100 consisting of first and second computers 110, 112. The first computer 110 is connected to a first NE 120, and the second computer 112 is connected to a second NE 122. The first and the second NEs 120, 122 are connected together with links 130, 132, wherein the links may be fiber optic cables. That is, the links 130, 132 form pipelines between the NEs 120, 122. However, the two links 130, 132 form a layer-2 forwarding loop that renders the telecom network 100 inoperable. That is, each NE 120, 122 will continually transmit data over both links 130, 132 and respond to the receipt of data over both links 130, 132. Eventually, the amount of excess traffic created by this situation floods the network 100 with traffic. One way to prevent the layer-2 forwarding loop is to use spanning tree for the telecom network 100.
As one of ordinary skill in the art knows, spanning tree is a standard bridge-to-bridge protocol used to prune a network into a tree by putting redundant links in “blocking” (sleeping) mode. Spanning tree is defined in IEEE Standard 802.1D, which is herein incorporated by reference. The blocked link would not forward traffic unless the working (non-blocked) link is lost. For example, if the first link 130 was the first link to transfer data between the NEs 120, 122, the second link 132 would effectively be blocked.
As one of ordinary skill in the art would recognize, there may be multiple links between two NEs for a specific reason other than redundancy. For example, a first link between NEs may provide a pipeline with a first data rate, such as OC-48, and the second link may provide a pipeline with a second data rate that is higher than the first data rate, such as OC-192. As would be obvious to one of ordinary skill in the art, the higher-speed connections cost more than the lower speed connections. As such, some customers may only pay for connections of the first data rate while other customers may pay for the higher data rate connection.
Thus, there is a need to separately identify the different links between NEs. The current and preferred method for differentiating links between NEs is to assign each unique link to a different virtual LAN (VLAN). Current NEs support the assignment of VLANs to the links of the NE. The operation of VLAN NEs is defined in IEEE Standard 802.1Q, which is herein incorporated by reference, but is not admitted to be prior art.
FIG. 2A illustrates a telecom network 200 that includes first, second, third, and fourth computers 210, 212, 214, 216. The first and second computers 210, 212 are connected to a first NE 220, and the third and fourth computers 214, 216 are connected to a second NE 222. The first and the second NEs 220, 222 are connected together with links 240, 242, wherein the links are preferably fiber optic cables but may be copper cables or other type of cables capable of transmitting data at high speeds. The first link 240 supports OC-192 data streams while the second link 242 supports only OC-48 data streams. The first link 240 is identified as VLAN-A and the second link 242 is identified as VLAN-B.
Some customers may require the speed of an OC-192 pipeline while others may only require, or be able to justify the cost of, an OC-48 pipeline. The pipeline used by the customers will depend on the services provided by the customers. That is, each customer will select a link that provides an acceptable data rate at an acceptable price.
For example, as illustrated in FIG. 2B, a first customer 250 might use the first computer 210 and the third computer 214, and a second customer 252 may use the second computer 212 and the fourth computer 216. The first customer 250 uses the first link 240 that provides the OC-192 data rate, while the second customer 252 uses the second link 242, supporting OC-48 communications. To differentiate the two links, the first link is identified as VLAN-A 260 and the second link is identified as VLAN-B 262. Thus, when data is transmitted by the first customer 250 (to/from the first computer or the third computer 210, 214), the data will be transmitted over the first link 240 identified as VLAN-A 260. Likewise, when data is transmitted from the second customer 252 (to/from the second computer or the fourth computers 212, 216), the data will be transmitted over the second link 242 that is identified as VLAN-B 262.
If a single spanning tree protocol is used between the two NEs of FIG. 2B, the spanning tree protocol will assume that there is a forwarding loop and block one of the links. In fact, there is not a forwarding loop as each link is a different VLAN. The solution is to run two separate spanning tree protocols between the NEs. That is, run a separate spanning tree protocol for each link, since each link is associated with a separate VLAN. Stated alternatively, a separate spanning tree is run for each VLAN, since each VLAN is associated with a separate link. Thus, each spanning tree only sees a single link (as opposed to a loop) and does not block any of the traffic inadvertently.
However, a typical telecom network is not as simple as that illustrated in FIGS. 1–2. The typical telecom network will consist of multiple NEs and multiple links between the NEs. Each of the links will have data from various sources being transferred over it.
For example, FIG. 3A illustrates an exemplary telecom network 300 that consists of two NEs (NE1, NE2) and three links (310, 312, 314) therebetween, and provides communications between two sets of customers (C1, C2). NE1 connects to C1 320 and C2 330 and NE2 connects to C1 322 and C2 332. C1 320 and C2 322 communicate over links 312, 314, which are both designated as VLAN-A. Therefore, one of the links 312, 314 would be blocked when running spanning tree on VLAN-A so as to prevent a layer-2 forwarding loop. C2 330 and C2 332 communicate over links 310, 312, which are both designated as VLAN-B. Therefore, one of the links 310, 312 would be blocked when running spanning tree for VLAN-B.
The telecom network 300 illustrates a situation where link 312 is designated as both VLAN-A and VLAN-B. IEEE standard 802.1Q does not provide a standard for assigning spanning tree protocols to such arbitrary topologies. The assignment of spanning tree protocols is normally a function left to the individual deployer of an NE. As one of ordinary skill in the art would recognize, this assumes expertise and diligence on the part of the user. Moreover, there is no standard for handling the assignment of multiple VLANs to a single link, which is likely to be a common occurrence (as is the case with the telecom network of FIG. 3A).
This type of mismatch topology leaves a network operator with a dilemma. If the network operator runs a separate spanning tree for each different VLAN assignment, then none of the links would be blocked as each link has a different VLAN assignment (310-VLAN-A, 312-VLAN-A/B, and 314-VLAN-A). Furthermore, if the network operator ran the same spanning tree on links 310, 312 (i.e., same spanning tree for VLAN-B and VLAN-A/B) it is possible that a VLAN-A layer-2 forwarding loop would remain if link 310 was put in blocking mode. Alternatively, if the network operator ran the same spanning tree on links 312, 314 (i.e., same spanning tree for VLAN-A and VLAN-A/B) it is possible that a VLAN-B layer-2 forwarding loop would remain if link 314 was put in blocking mode.
As an additional example FIG. 3B illustrates an exemplary telecom network 350 that consists of six NEs (NEs 1–6) and six links 352, 354, 356, 358, 360 therebetween. Four distinct network circuits (NC1–NC4) are defined in the telecom network 350. NC1 connects NE1, NE2, and NE5; NC2 connects NE2, NE3 and NE6; NC3 connects NE4, NE3, and NE5; and NC4 connects NE2, NE3 and NE5. The links of NC1 are assigned as VLAN-A, the links of NC2 are assigned VLAN-B, the links of NC3 are assigned VLAN-c, and the links of NC4 are assigned VLAN-D. This leaves a topology where the links have the following VLAN assignments.
LinksVLAN352A354A/D356B/D358C/D360C362B
As illustrated, NC4 is a loop that needs to properly have spanning tree performed so as to prevent a layer-2 forwarding loop. However, each of the links 354, 356, 358 of NC4 is transmitting data in addition to the data associated with NC4. A network operator is burdened with attempting to figure out how to effectively run spanning tree so as to prevent a layer-2 forwarding loop at the same time as not inadvertently blocking an active path.
For example, if the operator assigned a separate spanning tree to each unique set of VLANs, the loop would not be blocked as each of the links within the loop have different VLAN assignments. Alternatively, if the operator assigned each link associated with NC4 the same spanning tree, one of the links 354, 356, 358 (forming the loop) would be blocked. Blocking one of these links will inadvertently block NC1, NC2, or NC3 data being transmitted over that link.
Thus, there is a need for a method and apparatus for restricting the assignment of VLANs. The method and apparatus needs to prevent different NCs from being assigned VLANs that will either create a loop or prevent a loop from being able to be properly blocked without inadvertently blocking a link of another NC. If the assignment of VLANs is properly implemented, then a single conventional spanning tree can be run for the each unique VLAN to ensure that there are no layer 2 forwarding loops while at the same time not inadvertently blocking the path of another NC.